extern int Pop(double *topePila,int tamanioPila,int *cantidadElementos, double *output);
extern int Push(double *topePila,int tamanioPila,int *cantidadElementos, double input);
extern int SumaTotal(double *topePila,int tamanioPila,int *cantidadElementos, double *resultadoSuma);

#define TAMANIO_PILA 4

void VerificarError(int resultadoOperacion)
{
	if(resultadoOperacion != 1)
	{
		exit(1);
	}
}

int main(void)
{
	double pila[TAMANIO_PILA];
	double output = 0.0;
	int cantidadElementos = 0;
	int result;
	Push(pila,TAMANIO_PILA,&cantidadElementos,1.4);
	Push(pila,TAMANIO_PILA,&cantidadElementos,2.6);
	Push(pila,TAMANIO_PILA,&cantidadElementos,6);
	Push(pila,TAMANIO_PILA,&cantidadElementos,-2);
	double resultadoSuma = 0;

	result = Push(pila,TAMANIO_PILA,&cantidadElementos,-2);
	printf("Resultado Push Pila Llena: %d\n",result);
	
	VerificarError(SumaTotal(pila,TAMANIO_PILA,&cantidadElementos,&resultadoSuma));
	printf("El resultado de la suma de los valores de la pila es: %f\n",resultadoSuma);

	while (cantidadElementos>0)
	{

		int result = Pop(pila,TAMANIO_PILA,&cantidadElementos,&output);
		printf("Resultado Pop Pila Con Elemento: %d\n",result);
		printf("Elemento: %f\n",output);
	}

	Pop(pila,TAMANIO_PILA,&cantidadElementos,&output);
	printf("Resultado Pop Pila Vacia: %d\n",result);


	//int error = 0;
	
	VerificarError(SumaTotal(pila,TAMANIO_PILA,&cantidadElementos,&resultadoSuma));
	printf("El resultado de la suma de los valores de la pila es: %f\n",resultadoSuma);

	return 0;
}
